package br.edu.ufcg.msnlab2.misc;

/**
 * A numerical integration method is capable of numerically integrating
 * functions. Thus, every method that provides numerical results for
 * integrations must implement this interface.
 * 
 * @author Alexandro S. Soares - alexandrodss@gmail.com
 */
public interface NumericalIntegrationMethod {

	/**
	 * Returns the result of integrating the function <code>f</code> within the
	 * given interval <code>[a,b]</code>.
	 * 
	 * @param f
	 *            the function.
	 * @param a
	 *            the start of the interval.
	 * @param b
	 *            the end of the interval.
	 * @return the numerical result of integrating the function <code>f</code>
	 *         within the given interval.
	 */
	double integrate( Function f, double a, double b );

}
